﻿Use electrondb

ALTER TABLE [dbo].[Compra]
ADD CONSTRAINT [PK_Compra]
    PRIMARY KEY CLUSTERED ([CompraId] ASC);
GO

ALTER TABLE [dbo].[Comuna]
ADD CONSTRAINT [PK_Comuna]
    PRIMARY KEY CLUSTERED ([ComunaId] ASC);
GO

ALTER TABLE [dbo].[DetalleCompra]
ADD CONSTRAINT [PK_DetalleCompra]
    PRIMARY KEY CLUSTERED ([DetalleCompraId] ASC);
GO

ALTER TABLE [dbo].[Venta]
ADD CONSTRAINT [PK_Venta]
    PRIMARY KEY CLUSTERED ([VentaId] ASC);
GO
ALTER TABLE [dbo].[DetalleVenta]
ADD CONSTRAINT [PK_DetalleVenta]
    PRIMARY KEY CLUSTERED ([DetalleVentaId] ASC);
GO

ALTER TABLE [dbo].[Estado]
ADD CONSTRAINT [PK_Estado]
    PRIMARY KEY CLUSTERED ([EstadoId] ASC);
GO

ALTER TABLE [dbo].[Funcion]
ADD CONSTRAINT [PK_Funcion]
    PRIMARY KEY CLUSTERED ([FuncionId] ASC);
GO

ALTER TABLE [dbo].[Marca]
ADD CONSTRAINT [PK_Marca]
    PRIMARY KEY CLUSTERED ([MarcaId] ASC);
GO

ALTER TABLE [dbo].[Opciones]
ADD CONSTRAINT [PK_Opciones]
    PRIMARY KEY CLUSTERED ([OpcionesId] ASC);
GO

ALTER TABLE [dbo].[Permisos]
ADD CONSTRAINT [PK_Permisos]
    PRIMARY KEY CLUSTERED ([PermisosId] ASC);
GO

ALTER TABLE [dbo].[Precio]
ADD CONSTRAINT [PK_Precio]
    PRIMARY KEY CLUSTERED ([PrecioId] ASC);
GO

ALTER TABLE [dbo].[ImgProducto]
ADD CONSTRAINT [PK_ImgProducto]
    PRIMARY KEY CLUSTERED ([ImgId] ASC);
GO

ALTER TABLE [dbo].[Producto]
ADD CONSTRAINT [PK_Producto]
    PRIMARY KEY CLUSTERED ([ProductoId] ASC);
GO

ALTER TABLE [dbo].[Proveedor]
ADD CONSTRAINT [PK_Proveedor]
    PRIMARY KEY CLUSTERED ([ProveedorId] ASC);
GO

ALTER TABLE [dbo].[Provincia]
ADD CONSTRAINT [PK_Provincia]
    PRIMARY KEY CLUSTERED ([ProvinciaId] ASC);
GO

ALTER TABLE [dbo].[Region]
ADD CONSTRAINT [PK_Region]
    PRIMARY KEY CLUSTERED ([RegionId] ASC);
GO

ALTER TABLE [dbo].[TipoPago]
ADD CONSTRAINT [PK_TipoPago]
    PRIMARY KEY CLUSTERED ([TipoPagoId] ASC);
GO

ALTER TABLE [dbo].[TipoUsuario]
ADD CONSTRAINT [PK_TipoUsuario]
    PRIMARY KEY CLUSTERED ([TipoUsuarioId] ASC);
GO

ALTER TABLE [dbo].[Usuario]
ADD CONSTRAINT [PK_Usuario]
    PRIMARY KEY CLUSTERED ([UsuarioId] ASC);
GO

ALTER TABLE [dbo].[CategoriaProducto]
ADD CONSTRAINT [PK_Categoria]
	PRIMARY KEY CLUSTERED ([IdCategoria] ASC);
GO

ALTER TABLE [dbo].[SubcategoriaProducto]
ADD CONSTRAINT [PK_Subcategoria]
	PRIMARY KEY CLUSTERED ([IdSubcategoria] ASC);
GO

ALTER TABLE [dbo].[DetalleVenta]
ADD CONSTRAINT [FK_DetalleVenta_Venta_Venta_VentaId]
    FOREIGN KEY ([Venta])
    REFERENCES [dbo].[Venta]
        ([VentaId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_DetalleVenta_Venta_Venta_VentaId]
ON [dbo].[DetalleVenta]
    ([Venta]);
GO
ALTER TABLE [dbo].[DetalleVenta]
ADD CONSTRAINT [FK_DetalleVenta_Producto_Producto_ProductoId]
    FOREIGN KEY ([ProductoId])
    REFERENCES [dbo].[Producto]
        ([ProductoId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_DetalleVenta_Producto_Producto_ProductoId]
ON [dbo].[DetalleVenta]
    ([ProductoId]);
GO

ALTER TABLE [dbo].[Venta]
ADD CONSTRAINT [FK_Venta_UsuarioVenta_Usuario_UsuarioId]
    FOREIGN KEY ([UsuarioVenta])
    REFERENCES [dbo].[Usuario]
        ([UsuarioId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_Venta_UsuarioVenta_Usuario_UsuarioId]
ON [dbo].[Venta]
    ([UsuarioVenta]);
GO

ALTER TABLE [dbo].[Venta]
ADD CONSTRAINT [FK_Venta_UsuarioCaja_Usuario_UsuarioId]
    FOREIGN KEY ([UsuarioCaja])
    REFERENCES [dbo].[Usuario]
        ([UsuarioId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_Venta_UsuarioCaja_Usuario_UsuarioId]
ON [dbo].[Venta]
    ([UsuarioCaja]);
GO

ALTER TABLE [dbo].[Venta]
ADD CONSTRAINT [FK_Venta_estado_estado_id]
    FOREIGN KEY ([Estado])
    REFERENCES [dbo].[Estado]
        ([EstadoId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_Venta_estado_estado_id]
ON [dbo].[Venta]
    ([Estado]);
GO
ALTER TABLE [dbo].[Venta]
ADD CONSTRAINT [FK_Venta_TipoPago_TipoPago_TipoPagoId]
    FOREIGN KEY ([TipoPago])
    REFERENCES [dbo].[TipoPago]
        ([TipoPagoId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_Venta_TipoPago_TipoPago_TipoPagoId]
ON [dbo].[Venta]
    ([TipoPago]);
GO

ALTER TABLE [dbo].[Compra]
ADD CONSTRAINT [FK_compra_estado_estado_id]
    FOREIGN KEY ([Estado])
    REFERENCES [dbo].[Estado]
        ([EstadoId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_compra_estado_estado_id]
ON [dbo].[Compra]
    ([Estado]);
GO

ALTER TABLE [dbo].[Compra]
ADD CONSTRAINT [FK_compra_proveedor_proveedor_id]
    FOREIGN KEY ([Proveedor])
    REFERENCES [dbo].[Proveedor]
        ([ProveedorId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_compra_proveedor_proveedor_id]
ON [dbo].[Compra]
    ([Proveedor]);
GO

ALTER TABLE [dbo].[Compra]
ADD CONSTRAINT [FK_compra_tipopago_tipopago_id]
    FOREIGN KEY ([TipoPago])
    REFERENCES [dbo].[TipoPago]
        ([TipoPagoId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_compra_tipopago_tipopago_id]
ON [dbo].[Compra]
    ([TipoPago]);
GO

ALTER TABLE [dbo].[Compra]
ADD CONSTRAINT [FK_compra_usuario_usuario_id]
    FOREIGN KEY ([Usuario])
    REFERENCES [dbo].[Usuario]
        ([UsuarioId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_compra_usuario_usuario_id]
ON [dbo].[Compra]
    ([Usuario]);
GO

ALTER TABLE [dbo].[DetalleCompra]
ADD CONSTRAINT [FK_detallecompra_idcompra_compra_id]
    FOREIGN KEY ([Compra])
    REFERENCES [dbo].[Compra]
        ([CompraId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_detallecompra_idcompra_compra_id]
ON [dbo].[DetalleCompra]
    ([Compra]);
GO

ALTER TABLE [dbo].[Comuna]
ADD CONSTRAINT [FK_Comuna_Provincia_Provincia_Id]
    FOREIGN KEY ([Provincia])
    REFERENCES [dbo].[Provincia]
        ([ProvinciaId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_Comuna_Provincia_Provincia_Id]
ON [dbo].[Comuna]
    ([Provincia]);
GO

ALTER TABLE [dbo].[Proveedor]
ADD CONSTRAINT [FK_proveedor_comuna_comuna_id]
    FOREIGN KEY ([Comuna])
    REFERENCES [dbo].[Comuna]
        ([ComunaId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_proveedor_comuna_comuna_id]
ON [dbo].[Proveedor]
    ([Comuna]);
GO

ALTER TABLE [dbo].[DetalleCompra]
ADD CONSTRAINT [FK_detallecompra_idprecio_precio_id]
    FOREIGN KEY ([Precio])
    REFERENCES [dbo].[Precio]
        ([PrecioId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_detallecompra_idprecio_precio_id]
ON [dbo].[DetalleCompra]
    ([Precio]);
GO

ALTER TABLE [dbo].[Proveedor]
ADD CONSTRAINT [FK_proveedor_estado_estado_id]
    FOREIGN KEY ([Estado])
    REFERENCES [dbo].[Estado]
        ([EstadoId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_proveedor_estado_estado_id]
ON [dbo].[Proveedor]
    ([Estado]);
GO

ALTER TABLE [dbo].[Usuario]
ADD CONSTRAINT [FK_Usuario_Activo_Estado_Id]
    FOREIGN KEY ([Estado])
    REFERENCES [dbo].[Estado]
        ([EstadoId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_Usuario_Activo_Estado_Id]
ON [dbo].[Usuario]
    ([Estado]);
GO

ALTER TABLE [dbo].[Permisos]
ADD CONSTRAINT [FK_Permisos_Funcion_Funcion_Id]
    FOREIGN KEY ([Funcion])
    REFERENCES [dbo].[Funcion]
        ([FuncionId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_Permisos_Funcion_Funcion_Id]
ON [dbo].[Permisos]
    ([Funcion]);
GO

ALTER TABLE [dbo].[Producto]
ADD CONSTRAINT [FK_producto_marca_marca_id]
    FOREIGN KEY ([Marca])
    REFERENCES [dbo].[Marca]
        ([MarcaId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

ALTER TABLE [dbo].[Producto]
ADD CONSTRAINT [FK_producto_subcategoriaproducto_idsubcategoria]
	FOREIGN KEY ([IdSubcategoria])
	REFERENCES [dbo].[SubcategoriaProducto]
		([IdSubcategoria])
	ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_producto_marca_marca_id]
ON [dbo].[Producto]
    ([Marca]);

CREATE INDEX [IX_FK_producto_subcategoria_idsubcategoria]
ON [dbo].[Producto]
	([IdSubcategoria]);
GO

ALTER TABLE [dbo].[ImgProducto]
ADD CONSTRAINT [FK_ImgProducto_ProductoId_Producto_ProductoId]
	FOREIGN KEY ([ProductoId])
	REFERENCES [dbo].[Producto]
		([ProductoId])
	ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_imgproducto_productoid_producto_productoid]
ON [dbo].[ImgProducto]
	([ProductoId]);
GO

ALTER TABLE [dbo].[Permisos]
ADD CONSTRAINT [FK_Permisos_Usuario_Usuario_Id]
    FOREIGN KEY ([Usuario])
    REFERENCES [dbo].[Usuario]
        ([UsuarioId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_Permisos_Usuario_Usuario_Id]
ON [dbo].[Permisos]
    ([Usuario]);
GO

ALTER TABLE [dbo].[Precio]
ADD CONSTRAINT [FK_precio_producto_producto_id]
    FOREIGN KEY ([Producto])
    REFERENCES [dbo].[Producto]
        ([ProductoId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_precio_producto_producto_id]
ON [dbo].[Precio]
    ([Producto]);
GO

ALTER TABLE [dbo].[Provincia]
ADD CONSTRAINT [FK_Provincia_Region_Region_Id]
    FOREIGN KEY ([Region])
    REFERENCES [dbo].[Region]
        ([RegionId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_Provincia_Region_Region_Id]
ON [dbo].[Provincia]
    ([Region]);
GO

ALTER TABLE [dbo].[Usuario]
ADD CONSTRAINT [FK_Usuario_Tipousuario_Tipousuario_Id]
    FOREIGN KEY ([TipoUsuario])
    REFERENCES [dbo].[TipoUsuario]
        ([TipoUsuarioId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_Usuario_Tipousuario_Tipousuario_Id]
ON [dbo].[Usuario]
    ([TipoUsuario]);
GO

ALTER TABLE [dbo].[SubcategoriaProducto]
ADD CONSTRAINT [FK_subcategoriaproducto_categoriaproducto_idcategoria]
	FOREIGN KEY ([IdCategoria])
	REFERENCES [dbo].[CategoriaProducto]
		([IdCategoria])
	ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX [IX_FK_subcategoriaproducto_categoriaproducto_idcategoria]
ON [dbo].[SubcategoriaProducto]
	([IdCategoria]);
GO